#include<assert.h>

namespace sk
{

	template<class T>
	struct list_node
	{
		list_node<T>* _next;
		list_node<T>* _prev;
		T _val;

		list_node(const T& val = T())
			:_next(nullptr)
			, _prev(nullptr)
			, _val(val)
		{
		}
	};
	template<class T,class Ref,class Ptr>
	struct __list_literator
	{
		typedef list_node<T> node;
		typedef __list_iterator<T, Ref, Ptr> self;
		Node* _node;
//

		int mm;/////////////
	};

	template<class T>
	class list
	{
		typedef list_node<T> Node;

	public:

	private:
		Node* _head;
	};
}
